//
// Created by CodeZijun on 2022/12/1.
//
#include<iostream>
#include<queue>
using namespace std;
#ifndef DATASTRUCTURES_BINTREE_H
#define DATASTRUCTURES_BINTREE_H
struct binTreeNode{
    string data;
    binTreeNode* l_child = nullptr;
    binTreeNode* r_child = nullptr;
    bool is_l_child = true;
    bool is_r_child = true;
};
class binTree {
public:
    binTreeNode* root;
    binTreeNode* pre ;
    binTree(){
        root = nullptr;
        pre = nullptr;
    }
    void produceTree();
    void preOrder(binTreeNode* p);
    void midOrder(binTreeNode* p);
    void aftOrder(binTreeNode* p);
    void levOrder(binTreeNode* p);
    void makeMthread(binTreeNode* p);
    void visitMthread();

};


#endif //DATASTRUCTURES_BINTREE_H
